home *** CD-ROM | disk | FTP | other *** search
/ Acorn RISC PD-CD 1 / Acorn RISC PD-CD 1.iso / languages / dde / _pc / h / fontlist < prev    next >
Text File  |  1992-02-09  |  2KB  |  75 lines

  1. (*
  2.  * Title: fontlist.h
  3.  * Purpose: Routines to enumerate the fonts on the system into a tree structure
  4.  *
  5.  *)
  6.  
  7. #ifndef __fontlist_h
  8. #define __fontlist_h
  9.  
  10. (* -------------------------------------------------- *)
  11. (* Structures required *)
  12. (* -------------------------------------------------- *)
  13. type fontlist_node_ptr = ^fontlist_node;
  14.      fontlist_node =
  15.        record
  16.          name : packed array[1..39] of char;
  17.          son : fontlist_node_ptr;
  18.          brother : fontlist_node_ptr;
  19.          flag : integer
  20.        end;
  21.  
  22. (* As an example of a font tree structure, consider
  23.         Corpus.Medium, Corpus.Bold, Selwyn,
  24.         Trinity.Medium, Trinity.Bold, Trinity.Medium.Italic,
  25.         Widget.Medium.Italic.Outline
  26.  This will be stored in the following way: (#'s denote flag's which are TRUE)
  27.  --+-->   Corpus   --+--> # Medium
  28.    |                 |
  29.    |                 +--> # Bold
  30.    |
  31.    +--> # Selwyn
  32.    |
  33.    +-->   Trinity  --+--> # Medium   -----> # Italic
  34.    |                 |
  35.    |                 +--> # Bold
  36.    |
  37.    +-->   Widget   --+-->   Medium   -----> # Italic.Outline
  38.  
  39. [ Brothers are connected vertically downwars, sons to their parents
  40. right-to-left ]
  41. *)
  42.  
  43. (* -------------------------------------------------- *)
  44. (* Globals defined *)
  45. (* -------------------------------------------------- *)
  46. var font_tree : fontlist_node_ptr; extern;
  47.  
  48.  
  49.  
  50. (* ------------------------ fontlist_list_all_fonts ------------------------
  51.  * Description:   Read in the font list into a font tree
  52.  *
  53.  * Parameters:    BOOL system -- TRUE if System font should be included in
  54.  *                the list
  55.  * Returns:       a pointer to the start of the font tree
  56.  * Other Info:
  57.  *)
  58. function fontlist_list_all_fonts(system : boolean)
  59.                                                 : fontlist_node_ptr; extern;
  60.  
  61. (* ------------------------ fontlist_free_font_tree ------------------------
  62.  * Description:   Free a font tree
  63.  *
  64.  * Parameters:    fontlist_node *font_tree -- the font tree to free
  65.  * Returns:       
  66.  * Other Info:
  67.  *)
  68. procedure fontlist_free_font_tree(font_tree : fontlist_node_ptr); extern;
  69.  
  70.  
  71. #endif
  72.  
  73.  
  74. (* end fontlist.h *)
  75.